Skip to content

Latest commit

 

History

History
54 lines (46 loc) · 1.41 KB

File metadata and controls

54 lines (46 loc) · 1.41 KB

1004. Max Consecutive Ones III

Given a binary array nums and an integer k, return the maximum number of consecutive1's in the array if you can flip at mostk0's.

Example 1:

Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2 Output: 6 Explanation: [1,1,1,0,0,1,1,1,1,1,1] Bolded numbers were flipped from 0 to 1. The longest subarray is underlined. 

Example 2:

Input: nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3 Output: 10 Explanation: [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1] Bolded numbers were flipped from 0 to 1. The longest subarray is underlined. 

Constraints:

  • 1 <= nums.length <= 105
  • nums[i] is either 0 or 1.
  • 0 <= k <= nums.length

Solutions (Rust)

1. Solution

implSolution{pubfnlongest_ones(nums:Vec<i32>,k:i32) -> i32{letmut l = 0;letmut r = 0;letmut count0 = 0;letmut ret = 0;while r < nums.len(){if nums[r] == 0{ count0 += 1;while count0 > k {if nums[l] == 0{ count0 -= 1;} l += 1;}} r += 1; ret = ret.max(r - l);} ret asi32}}
close